<?php

/**
 * Description of MercadeoPQRS
 *
 * @author ETorres
 */
class MercadeoPQRS extends ModuleModel {
    const solicitudes = "acaweb_mercadeo_pqrs_solicitudes";
    const tipos_solicitudes = "acaweb_mercadeo_pqrs_tipos_solicitudes";
    const tipos_usuarios = "acaweb_mercadeo_pqrs_tipos_usuarios";
    
    /**
     *
     * @var Query
     */
    private $query;

    function __construct() {
        parent::__construct();
        $this->query = ModulesContext::instance()->getQueryFactory()->getQuery();
    }
    
    function saveSolicitud($datos) {
        return $this->query->insertInto(self::solicitudes)
                ->set("nombre", $datos["nombre"])
                ->set("apellido", $datos["apellido"])
                ->set("email", $datos["email"])
                ->set("telefono", $datos["telefono"])
                ->set("solicitud", $datos["solicitud"])
                ->set("id_tipo_usuario", $datos["id_tipo_usuario"])
                ->set("id_tipo_solicitud", $datos["id_tipo_solicitud"])
                ->set("createdAt", time())
                ->commit(true);
    }
    
    function getSolicitudes() {
        $result = $this->query->select()
                ->from(array(self::solicitudes))
                ->get();

        $solicitudes = $result->resultList();
        $solicitudesMapped = array();
        
        foreach ($solicitudes as $solicitud) {
            $solicitud["id_tipo_usuario"] = $this->getTipoUsuarioById($solicitud["id_tipo_usuario"]);
            $solicitud["id_tipo_solicitud"] = $this->getTipoSolicitudById($solicitud["id_tipo_solicitud"]);
            array_push($solicitudesMapped, $solicitud);
        }
        
        return $solicitudesMapped;
    }
    
    function getTiposSolicitudes() {
        $result = $this->query->select()
                ->from(array(self::tipos_solicitudes))
                ->get();

        return $result->resultList();
    }
    
    function getTiposUsuarios() {
        $result = $this->query->select()
                ->from(array(self::tipos_usuarios))
                ->get();
        
        return $result->resultList();
    }
    
    function getSolicitudById($id) {
        $result = $this->query->select()
                ->from(array(self::solicitudes))
                ->where("id", $id)
                ->get();

        $solicitud = $result->firstRow();
        
        $solicitud["id_tipo_usuario"] = $this->getTipoUsuarioById($solicitud["id_tipo_usuario"]);
        $solicitud["id_tipo_solicitud"] = $this->getTipoSolicitudById($solicitud["id_tipo_solicitud"]);
        
        return $solicitud;
    }
    
    function getTipoUsuarioById($id) {
        $result = $this->query->select()
                ->from(array(self::tipos_usuarios))
                ->where("id", $id)
                ->get();

        return $result->firstRow();
    }
    
    function getTipoSolicitudById($id) {
        $result = $this->query->select()
                ->from(array(self::tipos_solicitudes))
                ->where("id", $id)
                ->get();

        return $result->firstRow();
    }
}

?>
